
package com.gitee.sop.layui.adminserver.module.background.develop.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gitee.sop.layui.adminserver.module.background.develop.entity.SysFunctionRole;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: admin
 * @date: 2019-11-27
 * @version: 1.0.0
 */
public interface SysFunctionRoleMapper extends BaseMapper<SysFunctionRole> {

    /**
     * 查询指定code列表的数据
     *
     * @param codeList 编码列表
     * @return
     */
    List<SysFunctionRole> selectInCodeList(@Param(value = "codeList") List<String> codeList);

    /**
     * 查询指定pid下的最后一条数据
     *
     * @param pid 父id
     * @return
     */
    SysFunctionRole selectLastOneByPid(@Param("pid") int pid);

    /**
     * 右模糊匹配指定编码，并查询所有的id数据
     *
     * @param code 编码
     * @return
     */
    List<Integer> selectIdLikeRightCode(@Param("code") String code);

    /**
     * 查询用户所创建的功能角色
     *
     * @param userUuid 用户uuid
     * @param status   数据状态，可为空
     * @return
     */
    List<SysFunctionRole> selectAllByUserUuid(@Param("userUuid") String userUuid, @Param("status") Integer status);

    /**
     * 查询用户关联的功能角色
     *
     * @param status   数据状态，可为空
     * @param userUuid 用户uuid
     * @return
     */
    List<SysFunctionRole> selectAllByRelationUserUuid(@Param("userUuid") String userUuid, @Param("status") Integer status);

    /**
     * 右模糊匹配编码，并更新数据
     *
     * @param code   编码
     * @param status 状态
     */
    void updateLikeRightCode(@Param("code") String code, @Param("status") int status);
}
